The present invention relates to input/output systems and their cooperation with digital processing facilities.
A computer system generally includes a plurality of input and output equipment pieces by means of which the computer proper (mainframe) communicates with the "outside world." Included in this input/output system are also various storage facilities, serving as less expensive memory extensions. Early computers as well as simple versions for minicomputers and microcomputers have the input and output devices incorporated in the computer structure; i.e., the processing facility (CPU, ALU, and so forth) services these I/O units or devices on a time-sharing basis. In other words, the processing facility operates only partially as a computer and must, at times. function as a controller for the data flow to and from the I/O system. It is also a practice of long standing to separate these functions and to provide separate controllers for the I/O units operating in parallel, possibly with each other and with the computer proper, freeing the latter from the time-consuming data transfer task. In essence then, even a relatively small system today executes several programs in as many different processing facilities processed by the system, which aspect has nothing to do with multiprogramming, but merely involves an independent execution of a data processing program and of programs directing the data flow between components of the system other than the data flow between the main memory proper and the principal CPU. Executing such different programs concurrently is obviously the more important, the more I/O equipment is included in the system. However, it will become apparent that the invention is applicable to either kind of systems, i.e., to any computer system, with or without separate I/O service program execution.
The current method of interfacing I/O devices to computers is to design a special controller and special interface structure that fits the bus structure of that particular computer. Since there are many computer systems and many different kinds of I/O devices, even many different versions of I/O devices of the same type (e.g., Keyboard, CRT display, disk files, and so forth), a very (needlessly) large variety of interface structures has to be provided for. The situation is compounded for those types of input and/or output equipment which are of special design because of special, customized purposes.
Some kind of standardization has occurred in that the various controllers for I/O units are in some instances provided with common-type interfaces. Also. standardized interface structures have been designed to permit the interface bus of the controller--I/O unit subsystem to interface with the host computer. Nevertheless, there is a need for structures which permit I/O system interfacing in a manner which is, on the one hand, sufficiently universal and does not, on the other hand, depend upon the (unrealistic) existence of but one standardized and exclusively industry-wide used interface for each and all computers.
Another problem occurs within the I/O controllers. Such a controller usually includes programmable microprocessors This means that software must be generated for each type of I/O devices and for each type of host computers. Add to that the foregoing, largely incomplete interface standardization, and it will be apparent that inspite of widely attempted generalization (for economic reasons), the entire field of input/output equipment is still diversified to a large and, therefore, costly extent.